package cn.bitkit.component.base;

/**
 * 服务调度base类
 * @param <R>
 * @param <S>
 */
public interface BaseService<R,S> {

	/**
	 * 服务执行前
	 * @param req 参数
	 */
	default void before(R req){
	}

	/**
	 * 服务执行
	 * @param req 参数
	 * @return 返回值
	 */
	S execute(R req);

	/**
	 * 服务执行后
	 * @param req 参数
	 * @param resp 返回值
	 */
	default void after(R req, S resp){
	}
}
